home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm17.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  57.7 KB  |  1,881 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:CALL_PREFIX_NOT.arguments*/
  10. T0* r180add_comment(T180* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r180to_integer(T180* C){
  25. int R=0;
  26. T0* _rf1=NULL;
  27. _rf1=(((T180*)C))->_run_feature/*16*/;
  28. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  29. case 808: 
  30. break;
  31. default:
  32. _rf1=NULL;
  33. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  34. r180error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  35. }
  36. else {
  37. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/);
  38. }
  39. /*FI*/return R;
  40. }
  41. int r180is_a(T180* C,T0* a1){
  42. int R=0;
  43. R=X291is_a(X291run_type((((T180*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  44. /*IF*/if (!(R)) {
  45. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  46. r180error(X662start_position(a1),((T0*)ms4_662));
  47. }
  48. /*FI*/return R;
  49. }
  50. /*No:CALL_PREFIX_NOT.is_current*/
  51. int r180jvm_branch_if_false(T180* C){
  52. int R=0;
  53. /*IF*/if (X291is_boolean((((T180*)C))->_current_type/*8*/)) {
  54. X662compile_to_jvm((((T180*)C))->_target/*12*/);
  55. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  56. }
  57. else {
  58. R=r180jvm_standard_branch_if_false(C);
  59. }
  60. /*FI*/return R;
  61. }
  62. /*No:CALL_PREFIX_NOT.static_value*/
  63. void r180make(T180* C,T0* a1,T0* a2){
  64. {T406*n=malloc(sizeof(*n));
  65. *n=M406;
  66. r406make(n,r180operator(),a1);
  67. C->_feature_name=(T0*)n;
  68. }
  69. r180make_call0(C,a2,(((T180*)C))->_feature_name/*24*/);
  70. }
  71. /*No:CALL_PREFIX_NOT.nb_errors*/
  72. /*No:CALL_PREFIX_NOT.feature_name*/
  73. /*No:CALL_PREFIX_NOT.compile_to_jvm_assignment*/
  74. /*No:CALL_PREFIX_NOT.fz_iinaiv*/
  75. /*No:CALL_PREFIX_NOT.arg_count*/
  76. int r180jvm_branch_if_true(T180* C){
  77. int R=0;
  78. /*IF*/if (X291is_boolean((((T180*)C))->_current_type/*8*/)) {
  79. X662compile_to_jvm((((T180*)C))->_target/*12*/);
  80. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  81. }
  82. else {
  83. R=r180jvm_standard_branch_if_true(C);
  84. }
  85. /*FI*/return R;
  86. }
  87. /*No:CALL_PREFIX_NOT.run_feature*/
  88. /*No:CALL_PREFIX_NOT.start_position*/
  89. void r180compile_to_jvm_old(T180* C){
  90. X662compile_to_jvm_old((((T180*)C))->_target/*12*/);
  91. /*IF*//*AF*//*AE*/
  92. /*FI*/}
  93. /*No:CALL_PREFIX_NOT.target*/
  94. T0* r180to_runnable(T180* C,T0* a1){
  95. T0* R=NULL;
  96. /*IF*/if (((((T180*)C))->_current_type/*8*/)==((void*)(NULL))) {
  97. r180to_runnable_0(C,a1);
  98. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T180*)C))->_run_feature/*16*/))>(0))) {
  99. r683add_position((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/);
  100. r180error(X496start_position((((T180*)C))->_run_feature/*16*/),((T0*)ms1_752));
  101. }
  102. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  103. R=(T0*)C;
  104. }
  105. /*FI*/}
  106. else {
  107. R=r180twin(C);
  108. /*[IRF3.3set_current_type*/((((T180*)(((T180*)R))))->_current_type)=(NULL);
  109. /*]*/
  110. R=r180to_runnable(((T180*)R),a1);
  111. }
  112. /*FI*/return R;
  113. }
  114. /*No:CALL_PREFIX_NOT.result_type*/
  115. /*No:CALL_PREFIX_NOT.is_result*/
  116. T0* r180twin(T180* C){
  117. T0* R=NULL;
  118. R=malloc(sizeof(*C));
  119. *((T180*)R)=*C;
  120. return R;
  121. }
  122. /*No:CALL_PREFIX_NOT.set_current_type*/
  123. T0* r180operator(void){
  124. T0* R=NULL;
  125. R=((T0*)ms40_473);
  126. return R;
  127. }
  128. int r180is_static(T180* C){
  129. int R=0;
  130. /*IF*/if (X291is_boolean(X662result_type((((T180*)C))->_target/*12*/))) {
  131. /*IF*/if (X662is_static((((T180*)C))->_target/*12*/)) {
  132. R=1;
  133. /*IF*/if ((X662static_value((((T180*)C))->_target/*12*/))==(0)) {
  134. C->_static_value_mem=1;
  135. }
  136. /*FI*/}
  137. /*FI*/}
  138. /*FI*/return R;
  139. }
  140. void r180standard_compile_target_to_jvm(T180* C){
  141. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C;
  142. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  143. }/*]*/
  144. /*]*/
  145. X291jvm_check_class_invariant((((T180*)C))->_result_type/*20*/);
  146. }
  147. int r180compile_to_jvm_into(T180* C,T0* a1){
  148. int R=0;
  149. R=r180standard_compile_to_jvm_into(C,a1);
  150. return R;
  151. }
  152. /*No:CALL_PREFIX_NOT.compile_target_to_jvm*/
  153. /*No:CALL_PREFIX_NOT.fz_07*/
  154. int r180can_be_dropped(T180* C){
  155. int R=0;
  156. /*IF*/if (X662can_be_dropped((((T180*)C))->_target/*12*/)) {
  157. R=X496can_be_dropped((((T180*)C))->_run_feature/*16*/);
  158. }
  159. /*FI*/return R;
  160. }
  161. /*No:CALL_PREFIX_NOT.current_type*/
  162. /*No:CALL_PREFIX_NOT.jvm_assign*/
  163. /*No:CALL_PREFIX_NOT.static_value_mem*/
  164. /*No:CALL_PREFIX_NOT.is_manifest_string*/
  165. /*No:CALL_PREFIX_NOT.is_void*/
  166. int r180jvm_standard_branch_if_false(T180* C){
  167. int R=0;
  168. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C;
  169. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  170. }/*]*/
  171. /*]*/
  172. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  173. return R;
  174. }
  175. /*No:CALL_PREFIX_NOT.compile_to_jvm*/
  176. void r180to_runnable_0(T180* C,T0* a1){
  177. C->_current_type=a1;
  178. r180cpc_to_runnable(C,a1);
  179. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T180*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  180. /*IF*/if (((((T180*)C))->_result_type/*20*/)==((void*)(NULL))) {
  181. r683add_position(X496start_position((((T180*)C))->_run_feature/*16*/));
  182. r180error((((T406*)((T406*)((((T180*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  183. }
  184.  else if (X291is_like_current((((T180*)C))->_result_type/*20*/)) {
  185. C->_result_type=X662result_type((((T180*)C))->_target/*12*/);
  186. }
  187. /*FI*/}
  188. /*No:CALL_PREFIX_NOT.is_pre_computable*/
  189. int r180jvm_standard_branch_if_true(T180* C){
  190. int R=0;
  191. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C;
  192. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  193. }/*]*/
  194. /*]*/
  195. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  196. return R;
  197. }
  198. int r180use_current(T180* C){
  199. int R=0;
  200. /*IF*//*AF*//*AE*/
  201. /*FI*//*IF*/if (R) {
  202. }
  203.  else if (X662is_current((((T180*)C))->_target/*12*/)) {
  204. R=X496use_current((((T180*)C))->_run_feature/*16*/);
  205. }
  206. else {
  207. R=X662use_current((((T180*)C))->_target/*12*/);
  208. }
  209. /*FI*/return R;
  210. }
  211. void r180cpc_to_runnable(T180* C,T0* a1){
  212. T0* _rc=NULL;
  213. T0* _t=NULL;
  214. _t=X662to_runnable((((T180*)C))->_target/*12*/,a1);
  215. /*IF*/if ((_t)==((void*)(NULL))) {
  216. r683add_position(X662start_position((((T180*)C))->_target/*12*/));
  217. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  218. r683fatal_error(((T683*)(oBC364eh)),b1);
  219. }/*]*/
  220. }
  221. /*FI*/C->_target=_t;
  222. _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/));
  223. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  224. r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/);
  225. }
  226. /*No:CALL_PREFIX_NOT.us_not*/
  227. void r180make_call0(T180* C,T0* a1,T0* a2){
  228. C->_target=a1;
  229. C->_feature_name=a2;
  230. }
  231. void r180error(T0* a1,T0* a2){
  232. r683add_position(a1);
  233. r683error(((T683*)(oBC364eh)),a2);
  234. }
  235. /*No:CALL_PREFIX_NOT.isa_dca_inline_argument*/
  236. /*No:CALL_PREFIX_NOT.fatal_error*/
  237. int r180standard_compile_to_jvm_into(T180* C,T0* a1){
  238. int R=0;
  239. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T180* C1=C;
  240. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  241. }/*]*/
  242. /*]*/
  243. R=X291jvm_convert_to(X291run_type((((T180*)C))->_result_type/*20*/),a1);
  244. return R;
  245. }
  246. /*No:CALL_PREFIX_NOT.call_proc_call_c2jvm*/
  247. void r180afd_check(T180* C){
  248. T0* _running=NULL;
  249. T0* _rc=NULL;
  250. _rc=X291run_class(X662result_type((((T180*)C))->_target/*12*/));
  251. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  252. /*IF*/if ((_running)==((void*)(NULL))) {
  253. r683add_position(X662start_position((((T180*)C))->_target/*12*/));
  254. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  255. r7append(((T7*)(oBC683explanation)),b1);
  256. }/*]*/
  257. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  258. r7append(((T7*)(oBC683explanation)),b1);
  259. }/*]*/
  260. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  261. r7append(((T7*)(oBC683explanation)),b1);
  262. }/*]*/
  263. r683print_as_warning(((T683*)(oBC364eh)));
  264. r355set_at_run_time(((T355*)_rc));
  265. }
  266.  else if ((r396count(((T396*)_running)))>(0)) {
  267. r576update((((T180*)C))->_target/*12*/,(((T180*)C))->_run_feature/*16*/);
  268. }
  269. /*FI*/X662afd_check((((T180*)C))->_target/*12*/);
  270. /*IF*//*AF*//*AE*/
  271. /*FI*/}
  272. /*No:CALL_INFIX_INT_DIV.arguments*/
  273. T0* r460add_comment(T460* C,T0* a1){
  274. T0* R=NULL;
  275. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  276. R=(T0*)C;
  277. }
  278. else {
  279. {T529*n=malloc(sizeof(*n));
  280. *n=M529;
  281. r529make(n,(T0*)C,a1);
  282. R=(T0*)n;
  283. }
  284. }
  285. /*FI*/return R;
  286. }
  287. int r460to_integer(T460* C){
  288. int R=0;
  289. r460error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  290. return R;
  291. }
  292. int r460is_a(T460* C,T0* a1){
  293. int R=0;
  294. R=X291is_a(X291run_type((((T460*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  295. /*IF*/if (!(R)) {
  296. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  297. r460error(X662start_position(a1),((T0*)ms4_662));
  298. }
  299. /*FI*/return R;
  300. }
  301. /*No:CALL_INFIX_INT_DIV.is_current*/
  302. /*No:CALL_INFIX_INT_DIV.jvm_branch_if_false*/
  303. /*No:CALL_INFIX_INT_DIV.static_value*/
  304. void r460make(T460* C,T0* a1,T0* a2,T0* a3){
  305. T0* _eal=NULL;
  306. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  307. r683add_position(a2);
  308. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  309. r683fatal_error(((T683*)(oBC364eh)),b1);
  310. }/*]*/
  311. }
  312. /*FI*/{T454*n=malloc(sizeof(*n));
  313. *n=M454;
  314. r454make(n,((T0*)ms1_460),a2);
  315. C->_feature_name=(T0*)n;
  316. }
  317. {T431*n=malloc(sizeof(*n));
  318. *n=M431;
  319. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  320. /*]*/
  321. _eal=(T0*)n;
  322. }
  323. r460make_call_1(C,a1,(((T460*)C))->_feature_name/*28*/,_eal);
  324. }
  325. /*No:CALL_INFIX_INT_DIV.nb_errors*/
  326. /*No:CALL_INFIX_INT_DIV.feature_name*/
  327. /*No:CALL_INFIX_INT_DIV.compile_to_jvm_assignment*/
  328. /*No:CALL_INFIX_INT_DIV.fz_iinaiv*/
  329. /*No:CALL_INFIX_INT_DIV.arg_count*/
  330. /*No:CALL_INFIX_INT_DIV.jvm_branch_if_true*/
  331. /*No:CALL_INFIX_INT_DIV.run_feature*/
  332. /*No:CALL_INFIX_INT_DIV.start_position*/
  333. void r460compile_to_jvm_old(T460* C){
  334. X662compile_to_jvm_old((((T460*)C))->_target/*12*/);
  335. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T460*)C))->_arguments/*24*/)));
  336. }
  337. /*FI*/}
  338. /*No:CALL_INFIX_INT_DIV.target*/
  339. T0* r460to_runnable(T460* C,T0* a1){
  340. T0* R=NULL;
  341. T0* _tla=NULL;
  342. T0* _a=NULL;
  343. /*IF*/if (((((T460*)C))->_current_type/*8*/)==((void*)(NULL))) {
  344. r460to_runnable_0(C,a1);
  345. _a=r431to_runnable(((T431*)((((T460*)C))->_arguments/*24*/)),a1);
  346. /*IF*/if ((_a)==((void*)(NULL))) {
  347. r460error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  348. }
  349. else {
  350. C->_arguments=_a;
  351. }
  352. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  353. r431match_with(((T431*)((((T460*)C))->_arguments/*24*/)),(((T460*)C))->_run_feature/*16*/);
  354. }
  355. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  356. _tla=(((T460*)C))->_result_type/*20*/;
  357. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  358. case 239: 
  359. break;
  360. default:
  361. _tla=NULL;
  362. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  363. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/));
  364. }
  365. /*FI*/}
  366. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  367. R=(T0*)C;
  368. }
  369. /*FI*/}
  370. else {
  371. R=r460twin(C);
  372. /*[IRF3.3set_current_type*/((((T460*)(((T460*)R))))->_current_type)=(NULL);
  373. /*]*/
  374. R=r460to_runnable(((T460*)R),a1);
  375. }
  376. /*FI*/return R;
  377. }
  378. /*No:CALL_INFIX_INT_DIV.result_type*/
  379. /*No:CALL_INFIX_INT_DIV.is_result*/
  380. T0* r460twin(T460* C){
  381. T0* R=NULL;
  382. R=malloc(sizeof(*C));
  383. *((T460*)R)=*C;
  384. return R;
  385. }
  386. /*No:CALL_INFIX_INT_DIV.set_current_type*/
  387. /*No:CALL_INFIX_INT_DIV.operator*/
  388. int r460is_static(T460* C){
  389. int R=0;
  390. /*IF*/if (X291is_integer((((T460*)C))->_result_type/*20*/)) {
  391. /*IF*/if ((X662is_static((((T460*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/))) {
  392. R=1;
  393. C->_static_value_mem=(X662static_value((((T460*)C))->_target/*12*/))/(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T460*)C))->_arguments/*24*/)))/*)*/));
  394. }
  395. /*FI*/}
  396. /*FI*/return R;
  397. }
  398. void r460standard_compile_target_to_jvm(T460* C){
  399. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C;
  400. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  401. }/*]*/
  402. /*]*/
  403. X291jvm_check_class_invariant((((T460*)C))->_result_type/*20*/);
  404. }
  405. int r460compile_to_jvm_into(T460* C,T0* a1){
  406. int R=0;
  407. R=r460standard_compile_to_jvm_into(C,a1);
  408. return R;
  409. }
  410. /*No:CALL_INFIX_INT_DIV.compile_target_to_jvm*/
  411. /*No:CALL_INFIX_INT_DIV.fz_07*/
  412. /*No:CALL_INFIX_INT_DIV.can_be_dropped*/
  413. /*No:CALL_INFIX_INT_DIV.current_type*/
  414. /*No:CALL_INFIX_INT_DIV.jvm_assign*/
  415. /*No:CALL_INFIX_INT_DIV.static_value_mem*/
  416. void r460make_call_1(T460* C,T0* a1,T0* a2,T0* a3){
  417. C->_target=a1;
  418. C->_feature_name=a2;
  419. C->_arguments=a3;
  420. }
  421. /*No:CALL_INFIX_INT_DIV.is_manifest_string*/
  422. /*No:CALL_INFIX_INT_DIV.is_void*/
  423. int r460jvm_standard_branch_if_false(T460* C){
  424. int R=0;
  425. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C;
  426. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  427. }/*]*/
  428. /*]*/
  429. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  430. return R;
  431. }
  432. /*No:CALL_INFIX_INT_DIV.compile_to_jvm*/
  433. void r460to_runnable_0(T460* C,T0* a1){
  434. C->_current_type=a1;
  435. r460cpc_to_runnable(C,a1);
  436. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T460*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  437. /*IF*/if (((((T460*)C))->_result_type/*20*/)==((void*)(NULL))) {
  438. r683add_position(X496start_position((((T460*)C))->_run_feature/*16*/));
  439. r460error((((T454*)((T454*)((((T460*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  440. }
  441.  else if (X291is_like_current((((T460*)C))->_result_type/*20*/)) {
  442. C->_result_type=X662result_type((((T460*)C))->_target/*12*/);
  443. }
  444. /*FI*/}
  445. /*No:CALL_INFIX_INT_DIV.is_pre_computable*/
  446. int r460jvm_standard_branch_if_true(T460* C){
  447. int R=0;
  448. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C;
  449. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  450. }/*]*/
  451. /*]*/
  452. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  453. return R;
  454. }
  455. int r460use_current(T460* C){
  456. int R=0;
  457. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T460*)C))->_arguments/*24*/)));
  458. }
  459. /*FI*//*IF*/if (R) {
  460. }
  461.  else if (X662is_current((((T460*)C))->_target/*12*/)) {
  462. R=X496use_current((((T460*)C))->_run_feature/*16*/);
  463. }
  464. else {
  465. R=X662use_current((((T460*)C))->_target/*12*/);
  466. }
  467. /*FI*/return R;
  468. }
  469. void r460cpc_to_runnable(T460* C,T0* a1){
  470. T0* _rc=NULL;
  471. T0* _t=NULL;
  472. _t=X662to_runnable((((T460*)C))->_target/*12*/,a1);
  473. /*IF*/if ((_t)==((void*)(NULL))) {
  474. r683add_position(X662start_position((((T460*)C))->_target/*12*/));
  475. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  476. r683fatal_error(((T683*)(oBC364eh)),b1);
  477. }/*]*/
  478. }
  479. /*FI*/C->_target=_t;
  480. _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/));
  481. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  482. r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/);
  483. }
  484. void r460error(T0* a1,T0* a2){
  485. r683add_position(a1);
  486. r683error(((T683*)(oBC364eh)),a2);
  487. }
  488. /*No:CALL_INFIX_INT_DIV.isa_dca_inline_argument*/
  489. /*No:CALL_INFIX_INT_DIV.fatal_error*/
  490. /*No:CALL_INFIX_INT_DIV.fz_bad_argument*/
  491. /*No:CALL_INFIX_INT_DIV.arg1*/
  492. int r460standard_compile_to_jvm_into(T460* C,T0* a1){
  493. int R=0;
  494. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T460* C1=C;
  495. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  496. }/*]*/
  497. /*]*/
  498. R=X291jvm_convert_to(X291run_type((((T460*)C))->_result_type/*20*/),a1);
  499. return R;
  500. }
  501. /*No:CALL_INFIX_INT_DIV.call_proc_call_c2jvm*/
  502. void r460afd_check(T460* C){
  503. T0* _running=NULL;
  504. T0* _rc=NULL;
  505. _rc=X291run_class(X662result_type((((T460*)C))->_target/*12*/));
  506. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  507. /*IF*/if ((_running)==((void*)(NULL))) {
  508. r683add_position(X662start_position((((T460*)C))->_target/*12*/));
  509. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  510. r7append(((T7*)(oBC683explanation)),b1);
  511. }/*]*/
  512. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  513. r7append(((T7*)(oBC683explanation)),b1);
  514. }/*]*/
  515. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  516. r7append(((T7*)(oBC683explanation)),b1);
  517. }/*]*/
  518. r683print_as_warning(((T683*)(oBC364eh)));
  519. r355set_at_run_time(((T355*)_rc));
  520. }
  521.  else if ((r396count(((T396*)_running)))>(0)) {
  522. r576update((((T460*)C))->_target/*12*/,(((T460*)C))->_run_feature/*16*/);
  523. }
  524. /*FI*/X662afd_check((((T460*)C))->_target/*12*/);
  525. /*IF*/{/*AT*/r431afd_check(((T431*)((((T460*)C))->_arguments/*24*/)));
  526. }
  527. /*FI*/}
  528. void r158make(T158* C,T0* a1,T0* a2,T0* a3){
  529. C->_comment=a3;
  530. C->_tag=a1;
  531. C->_expression=a2;
  532. }
  533. /*No:LOOP_VARIANT_2.nb_errors*/
  534. /*No:LOOP_VARIANT_2.expression*/
  535. T0* r158start_position(T158* C){
  536. T0* R=NULL;
  537. R=X662start_position((((T158*)C))->_expression/*8*/);
  538. return R;
  539. }
  540. /*No:LOOP_VARIANT_2.comment*/
  541. T0* r158to_runnable(T158* C,T0* a1){
  542. T0* R=NULL;
  543. T0* _e=NULL;
  544. /*IF*/if (((((T158*)C))->_current_type/*12*/)==((void*)(NULL))) {
  545. C->_current_type=a1;
  546. _e=X662to_runnable((((T158*)C))->_expression/*8*/,a1);
  547. /*IF*/if ((_e)==((void*)(NULL))) {
  548. r158error(r158start_position(C),((T0*)ms1_856));
  549. }
  550. else {
  551. C->_expression=_e;
  552. /*IF*/if (!(X291is_integer(X662result_type((((T158*)C))->_expression/*8*/)))) {
  553. r158error(X662start_position((((T158*)C))->_expression/*8*/),((T0*)ms2_856));
  554. }
  555. /*FI*/}
  556. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  557. R=(T0*)C;
  558. }
  559. /*FI*/}
  560. else {
  561. R=r158twin(C);
  562. /*[IRF3.3set_current_type*/((((T158*)(((T158*)R))))->_current_type)=(NULL);
  563. /*]*/
  564. R=r158to_runnable(((T158*)R),a1);
  565. }
  566. /*FI*/return R;
  567. }
  568. T0* r158twin(T158* C){
  569. T0* R=NULL;
  570. R=malloc(sizeof(*C));
  571. *((T158*)R)=*C;
  572. return R;
  573. }
  574. /*No:LOOP_VARIANT_2.set_current_type*/
  575. /*No:LOOP_VARIANT_2.tag*/
  576. /*No:LOOP_VARIANT_2.current_type*/
  577. int r158use_current(T158* C){
  578. int R=0;
  579. R=X662use_current((((T158*)C))->_expression/*8*/);
  580. return R;
  581. }
  582. void r158error(T0* a1,T0* a2){
  583. r683add_position(a1);
  584. r683error(((T683*)(oBC364eh)),a2);
  585. }
  586. void r158afd_check(T158* C){
  587. X662afd_check((((T158*)C))->_expression/*8*/);
  588. }
  589. /*No:DEFERRED_FUNCTION.arguments*/
  590. T0* r649try_to_undefine(T649* C,T0* a1,T0* a2){
  591. T0* R=NULL;
  592. X776undefine_in(a1,a2);
  593. R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
  594. /*IF*/if ((R)!=((void*)(NULL))) {
  595. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T649*)C))->_clients/*20*/);
  596. /*]*/
  597. }
  598. else {
  599. r605fatal_undefine(((T605*)a2),a1);
  600. }
  601. /*FI*/return R;
  602. }
  603. /*No:DEFERRED_FUNCTION.is_deferred*/
  604. /*No:DEFERRED_FUNCTION.rescue_compound*/
  605. void r649add_into(T649* C,T0* a1){
  606. T0* _fn=NULL;
  607. int _i=0;
  608. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  609. _i=1;
  610. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  611. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  612. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  613. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  614. r683add_position(X776start_position(_fn));
  615. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  616. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  617. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  618. r7append(((T7*)(oBC683explanation)),b1);
  619. }/*]*/
  620. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  621. }
  622. else {
  623. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  624. }
  625. /*FI*/_i=(_i)+(1);
  626. }
  627. }
  628. /*No:DEFERRED_FUNCTION.end_comment*/
  629. /*No:DEFERRED_FUNCTION.try_to_undefine_aux*/
  630. void r649make(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  631. r649make_routine(C,a1,a2,a4,a5,a6);
  632. C->_result_type=a3;
  633. }
  634. /*No:DEFERRED_FUNCTION.nb_errors*/
  635. void r649make_routine(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  636. r649make_e_feature(C,a1,NULL);
  637. C->_header_comment=a4;
  638. C->_arguments=a2;
  639. C->_obsolete_mark=a3;
  640. C->_require_assertion=a5;
  641. }
  642. void r649set_header_comment(T649* C,T0* a1){
  643. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  644. C->_end_comment=a1;
  645. }
  646. /*FI*/}
  647. T0* r649start_position(T649* C){
  648. T0* R=NULL;
  649. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T649*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  650. return R;
  651. }
  652. T0* r649to_run_feature(T649* C,T0* a1,T0* a2){
  653. T0* R=NULL;
  654. r649check_obsolete(C);
  655. {T904*n=malloc(sizeof(*n));
  656. *n=M904;
  657. r904make(n,a1,a2,(T0*)C);
  658. R=(T0*)n;
  659. }
  660. return R;
  661. }
  662. /*No:DEFERRED_FUNCTION.ensure_assertion*/
  663. /*No:DEFERRED_FUNCTION.code_require*/
  664. /*No:DEFERRED_FUNCTION.result_type*/
  665. /*No:DEFERRED_FUNCTION.fz_03*/
  666. /*No:DEFERRED_FUNCTION.em1*/
  667. /*No:DEFERRED_FUNCTION.obsolete_mark*/
  668. /*No:DEFERRED_FUNCTION.em2*/
  669. /*No:DEFERRED_FUNCTION.set_clients*/
  670. /*No:DEFERRED_FUNCTION.names*/
  671. /*No:DEFERRED_FUNCTION.require_assertion*/
  672. void r649from_effective(T649* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  673. {T953*n=malloc(sizeof(*n));
  674. *n=M953;
  675. r953make(n,se_ma855(1,a1));
  676. C->_names=(T0*)n;
  677. }
  678. r649make(C,(((T649*)C))->_names/*8*/,a2,a3,NULL,NULL,a4);
  679. /*[IRF3.3set_ensure_assertion*/((((T649*)(C)))->_ensure_assertion)=(a5);
  680. /*]*/
  681. C->_base_class=a6;
  682. }
  683. void r649set_rescue_compound(T649* C,T0* a1){
  684. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.2is_deferred*/(1)/*)*/)) {
  685. r649error(r649start_position(C),((T0*)ms6_368));
  686. }
  687. /*FI*/C->_rescue_compound=a1;
  688. }
  689. int r649can_hide(T649* C,T0* a1,T0* a2){
  690. int R=0;
  691. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  692. /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  693. r683add_position(X359start_position(a1));
  694. r649error(r649start_position(C),((T0*)ms5_359));
  695. }
  696. /*FI*/}
  697. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  698. /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  699. r683add_position(X359start_position(a1));
  700. r649error(r649start_position(C),((T0*)ms6_359));
  701. }
  702.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  703. r683add_position(X359start_position(a1));
  704. r649error(r649start_position(C),((T0*)ms7_359));
  705. }
  706. /*FI*/}
  707. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  708. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  709. /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  710. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  711. r7append(((T7*)(oBC683explanation)),b1);
  712. }/*]*/
  713. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  714. r7append(((T7*)(oBC683explanation)),b1);
  715. }/*]*/
  716. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  717. }
  718. /*FI*/}
  719. /*FI*/}
  720. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  721. /*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  722. /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  723. r683add_position(X359start_position(a1));
  724. r683add_position(r649start_position(C));
  725. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  726. r7append(((T7*)(oBC683explanation)),b1);
  727. }/*]*/
  728. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  729. r7append(((T7*)(oBC683explanation)),b1);
  730. }/*]*/
  731. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  732. }
  733. /*FI*/}
  734. /*FI*/}
  735. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  736. return R;
  737. }
  738. /*No:DEFERRED_FUNCTION.header_comment*/
  739. int r649is_merge_with(T649* C,T0* a1,T0* a2){
  740. int R=0;
  741. /*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  742. /*IF*/if ((((((T649*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  743. r683add_position(X359start_position(a1));
  744. r649error(r649start_position(C),((T0*)ms2_359));
  745. }
  746. /*FI*/}
  747. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  748. /*IF*/if ((((((T649*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  749. r683add_position(X359start_position(a1));
  750. r649error(r649start_position(C),((T0*)ms3_359));
  751. }
  752.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T649*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  753. r683add_position(X359start_position(a1));
  754. r649error(r649start_position(C),((T0*)ms4_359));
  755. }
  756. /*FI*/}
  757. /*FI*//*IF*/if (((((T649*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  758. /*IF*/if (!(X291is_a_in((((T649*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  759. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  760. }
  761. /*FI*/}
  762. /*FI*//*IF*/if (((((T649*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  763. /*IF*/if (!(r31is_a_in(((T31*)((((T649*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  764. r683add_position(X359start_position(a1));
  765. r649error(r649start_position(C),((T0*)ms12_359));
  766. }
  767. /*FI*/}
  768. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  769. return R;
  770. }
  771. /*No:DEFERRED_FUNCTION.fz_dot*/
  772. /*No:DEFERRED_FUNCTION.set_ensure_assertion*/
  773. /*No:DEFERRED_FUNCTION.first_name*/
  774. /*No:DEFERRED_FUNCTION.clients*/
  775. void r649collect_for(T649* C,int a1){
  776. /*IF*/if ((a1)==(1001)) {
  777. /*IF*/if (((((T649*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  778. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/))) {
  779. r522add_last(((T522*)(oBC359require_collector)),(((T649*)C))->_require_assertion/*32*/);
  780. }
  781. /*FI*/}
  782. /*FI*/}
  783. else {
  784. /*IF*/if (((((T649*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  785. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T649*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  786. /*]*/
  787. r633add_into(((T633*)((((T649*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  788. }
  789. /*FI*/}
  790. /*FI*/}
  791. void r649error(T0* a1,T0* a2){
  792. r683add_position(a1);
  793. r683error(((T683*)(oBC364eh)),a2);
  794. }
  795. /*No:DEFERRED_FUNCTION.base_class*/
  796. void r649make_e_feature(T649* C,T0* a1,T0* a2){
  797. C->_names=a1;
  798. C->_result_type=a2;
  799. }
  800. void r649check_obsolete(T649* C){
  801. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  802. /*IF*/if (((((T649*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  803. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  804. r7append(((T7*)(oBC683explanation)),b1);
  805. }/*]*/
  806. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T649*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
  807. r7append(((T7*)(oBC683explanation)),b1);
  808. }/*]*/
  809. r649warning(r649start_position(C),((T0*)ms137_470));
  810. }
  811. /*FI*/}
  812. /*FI*/}
  813. void r649warning(T0* a1,T0* a2){
  814. r683add_position(a1);
  815. r683warning(((T683*)(oBC364eh)),a2);
  816. }
  817. void r953make(T953* C,T0* a1){
  818. int _i2=0;
  819. int _i=0;
  820. C->_list=a1;
  821. _i=(((T855*)((T855*)a1)))->_upper/*8*/;
  822. while (!((_i)==(0))) {
  823. _i2=r953index_of(C,r855item(((T855*)a1),_i));
  824. /*IF*/if ((_i2)!=(_i)) {
  825. r683add_position(X776start_position(r855item(((T855*)a1),_i2)));
  826. r683add_position(X776start_position(r855item(((T855*)a1),_i)));
  827. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_953);
  828. r683fatal_error(((T683*)(oBC364eh)),b1);
  829. }/*]*/
  830. }
  831. /*FI*/_i=(_i)-(1);
  832. }
  833. }
  834. /*No:FEATURE_NAME_LIST.item*/
  835. /*No:FEATURE_NAME_LIST.list*/
  836. int r953has(T953* C,T0* a1){
  837. int R=0;
  838. R=(r953index_of(C,a1))>(0);
  839. return R;
  840. }
  841. /*No:FEATURE_NAME_LIST.count*/
  842. /*No:FEATURE_NAME_LIST.fatal_error*/
  843. int r953index_of(T953* C,T0* a1){
  844. int R=0;
  845. T0* _fn_key=NULL;
  846. _fn_key=X776to_key(a1);
  847. R=(((T855*)((T855*)((((T953*)C))->_list/*0*/))))->_upper/*8*/;
  848. while (!(((R)==(0))||((_fn_key)==((void*)(X776to_key(/*(IRF4.6item*/r855item(((T855*)((((T953*)C))->_list/*0*/)),R)/*)*/)))))) {
  849. R=(R)-(1);
  850. }
  851. return R;
  852. }
  853. /*No:IFTHEN.fz_is_not_boolean*/
  854. /*No:IFTHEN.static_false*/
  855. void r809make(T809* C,T0* a1,T0* a2){
  856. C->_expression=a1;
  857. C->_then_compound=a2;
  858. }
  859. /*No:IFTHEN.nb_errors*/
  860. /*No:IFTHEN.expression*/
  861. /*No:IFTHEN.point2*/
  862. /*No:IFTHEN.static_true*/
  863. T0* r809to_runnable(T809* C,T0* a1){
  864. T0* R=NULL;
  865. T0* _t=NULL;
  866. T0* _tc=NULL;
  867. T0* _e=NULL;
  868. /*IF*/if (((((T809*)C))->_run_compound/*8*/)==((void*)(NULL))) {
  869. C->_run_compound=a1;
  870. _e=X662to_runnable((((T809*)C))->_expression/*0*/,/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/);
  871. /*IF*/if ((_e)==((void*)(NULL))) {
  872. r809error(X662start_position((((T809*)C))->_expression/*0*/),((T0*)ms8_809));
  873. }
  874. else {
  875. C->_expression=_e;
  876. _t=X662result_type((((T809*)C))->_expression/*0*/);
  877. /*IF*/if (!(X291is_boolean(_t))) {
  878. /*[IRF3.6append*/{T0* b1=((T0*)ms9_809);
  879. r7append(((T7*)(oBC683explanation)),b1);
  880. }/*]*/
  881. r683add_type(X662result_type((((T809*)C))->_expression/*0*/),((T0*)ms73_470));
  882. r683add_position(X662start_position((((T809*)C))->_expression/*0*/));
  883. r683print_as_error(((T683*)(oBC364eh)));
  884. }
  885. /*FI*/}
  886. /*FI*//*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  887. _tc=r592to_runnable(((T592*)((((T809*)C))->_then_compound/*4*/)),/*(IRF4.6current_type*/(((T592*)((T592*)((((T809*)C))->_run_compound/*8*/))))->_current_type/*4*//*)*/);
  888. /*IF*/if ((_tc)!=((void*)(NULL))) {
  889. C->_then_compound=_tc;
  890. }
  891. /*FI*/}
  892. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  893. R=(T0*)C;
  894. }
  895. /*FI*/}
  896. else {
  897. {T809*n=malloc(sizeof(*n));
  898. *n=M809;
  899. r809make(n,(((T809*)C))->_expression/*0*/,(((T809*)C))->_then_compound/*4*/);
  900. R=(T0*)n;
  901. }
  902. R=r809to_runnable(((T809*)R),a1);
  903. }
  904. /*FI*/return R;
  905. }
  906. /*No:IFTHEN.then_compound*/
  907. /*No:IFTHEN.current_type*/
  908. /*No:IFTHEN.run_compound*/
  909. /*No:IFTHEN.non_static*/
  910. int r809compile_to_jvm(T809* C){
  911. int R=0;
  912. int _point1=0;
  913. /*IF*/if (X662is_static((((T809*)C))->_expression/*0*/)) {
  914. r228incr_static_expression_count(((T228*)(oBC364jvm)));
  915. /*IF*/if ((X662static_value((((T809*)C))->_expression/*0*/))==(1)) {
  916. /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  917. r592compile_to_jvm(((T592*)((((T809*)C))->_then_compound/*4*/)));
  918. }
  919. /*FI*/R=1019;
  920. }
  921. else {
  922. R=1020;
  923. }
  924. /*FI*/}
  925. else {
  926. R=1021;
  927. _point1=X662jvm_branch_if_false((((T809*)C))->_expression/*0*/);
  928. /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  929. r592compile_to_jvm(((T592*)((((T809*)C))->_then_compound/*4*/)));
  930. }
  931. /*FI*/C->_point2=r256opcode_goto(((T256*)(oBC364code_attribute)));
  932. r256resolve_u2_branch(_point1);
  933. }
  934. /*FI*/return R;
  935. }
  936. int r809use_current(T809* C){
  937. int R=0;
  938. R=X662use_current((((T809*)C))->_expression/*0*/);
  939. /*IF*/if ((!(R))&&(((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL)))) {
  940. R=r592use_current(((T592*)((((T809*)C))->_then_compound/*4*/)));
  941. }
  942. /*FI*/return R;
  943. }
  944. void r809error(T0* a1,T0* a2){
  945. r683add_position(a1);
  946. r683error(((T683*)(oBC364eh)),a2);
  947. }
  948. int r809compile_to_jvm_resolve_branch(T809* C){
  949. int R=0;
  950. /*IF*/if (X662is_static((((T809*)C))->_expression/*0*/)) {
  951. /*IF*/if ((X662static_value((((T809*)C))->_expression/*0*/))==(1)) {
  952. R=1019;
  953. }
  954. else {
  955. R=1020;
  956. }
  957. /*FI*/}
  958. else {
  959. R=1021;
  960. /*IF*/if (((((T809*)C))->_point2/*12*/)>(0)) {
  961. r256resolve_u2_branch((((T809*)C))->_point2/*12*/);
  962. }
  963. /*FI*/}
  964. /*FI*/return R;
  965. }
  966. void r809afd_check(T809* C){
  967. X662afd_check((((T809*)C))->_expression/*0*/);
  968. /*IF*/if (((((T809*)C))->_then_compound/*4*/)!=((void*)(NULL))) {
  969. r592afd_check(((T592*)((((T809*)C))->_then_compound/*4*/)));
  970. }
  971. /*FI*/}
  972. /*No:CST_ATT_INTEGER.arguments*/
  973. T0* r689try_to_undefine(T689* C,T0* a1,T0* a2){
  974. T0* R=NULL;
  975. X776undefine_in(a1,a2);
  976. R=r689try_to_undefine_aux(C,a1,a2);
  977. /*IF*/if ((R)!=((void*)(NULL))) {
  978. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T689*)C))->_clients/*20*/);
  979. /*]*/
  980. }
  981. else {
  982. r605fatal_undefine(((T605*)a2),a1);
  983. }
  984. /*FI*/return R;
  985. }
  986. /*No:CST_ATT_INTEGER.is_deferred*/
  987. void r689add_into(T689* C,T0* a1){
  988. T0* _fn=NULL;
  989. int _i=0;
  990. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  991. _i=1;
  992. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  993. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  994. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  995. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  996. r683add_position(X776start_position(_fn));
  997. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  998. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  999. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1000. r7append(((T7*)(oBC683explanation)),b1);
  1001. }/*]*/
  1002. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1003. }
  1004. else {
  1005. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1006. }
  1007. /*FI*/_i=(_i)+(1);
  1008. }
  1009. }
  1010. T0* r689try_to_undefine_aux(T689* C,T0* a1,T0* a2){
  1011. T0* R=NULL;
  1012. r683add_position(r689start_position(C));
  1013. r689error(X776start_position(a1),((T0*)ms1_321));
  1014. r605fatal_undefine(((T605*)a2),a1);
  1015. return R;
  1016. }
  1017. void r689make(T689* C,T0* a1,T0* a2,T0* a3){
  1018. r689make_e_feature(C,a1,a2);
  1019. C->_value_mem=a3;
  1020. }
  1021. /*No:CST_ATT_INTEGER.nb_errors*/
  1022. /*No:CST_ATT_INTEGER.set_header_comment*/
  1023. T0* r689start_position(T689* C){
  1024. T0* R=NULL;
  1025. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T689*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1026. return R;
  1027. }
  1028. T0* r689to_run_feature(T689* C,T0* a1,T0* a2){
  1029. T0* R=NULL;
  1030. T0* _rc=NULL;
  1031. _rc=X291run_class(a1);
  1032. R=r355at(((T355*)_rc),a2);
  1033. if(NULL!=(R))switch(((T0*)R)->id) {
  1034. case 808: 
  1035. break;
  1036. default:
  1037. R=NULL;
  1038. };/*IF*/if ((R)==((void*)(NULL))) {
  1039. {T808*n=malloc(sizeof(*n));
  1040. *n=M808;
  1041. r808make(n,a1,a2,(T0*)C);
  1042. R=(T0*)n;
  1043. }
  1044. }
  1045. /*FI*/return R;
  1046. }
  1047. /*No:CST_ATT_INTEGER.ensure_assertion*/
  1048. /*No:CST_ATT_INTEGER.code_require*/
  1049. /*No:CST_ATT_INTEGER.result_type*/
  1050. /*No:CST_ATT_INTEGER.em1*/
  1051. /*No:CST_ATT_INTEGER.set_clients*/
  1052. /*No:CST_ATT_INTEGER.em2*/
  1053. /*No:CST_ATT_INTEGER.value*/
  1054. /*No:CST_ATT_INTEGER.require_assertion*/
  1055. /*No:CST_ATT_INTEGER.names*/
  1056. /*No:CST_ATT_INTEGER.value_mem*/
  1057. int r689can_hide(T689* C,T0* a1,T0* a2){
  1058. int R=0;
  1059. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1060. /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1061. r683add_position(X359start_position(a1));
  1062. r689error(r689start_position(C),((T0*)ms5_359));
  1063. }
  1064. /*FI*/}
  1065. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1066. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1067. r689error(r689start_position(C),((T0*)ms6_359));
  1068. }
  1069. /*FI*/}
  1070. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1071. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1072. /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1073. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1074. r7append(((T7*)(oBC683explanation)),b1);
  1075. }/*]*/
  1076. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1077. r7append(((T7*)(oBC683explanation)),b1);
  1078. }/*]*/
  1079. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1080. }
  1081. /*FI*/}
  1082. /*FI*/}
  1083. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1084. /*IF*//*AF*//*AE*/
  1085. /*FI*/}
  1086. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1087. return R;
  1088. }
  1089. /*No:CST_ATT_INTEGER.header_comment*/
  1090. int r689is_merge_with(T689* C,T0* a1,T0* a2){
  1091. int R=0;
  1092. /*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1093. /*IF*/if ((((((T689*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1094. r683add_position(X359start_position(a1));
  1095. r689error(r689start_position(C),((T0*)ms2_359));
  1096. }
  1097. /*FI*/}
  1098. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  1099. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  1100. r689error(r689start_position(C),((T0*)ms3_359));
  1101. }
  1102. /*FI*/}
  1103. /*FI*//*IF*/if (((((T689*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1104. /*IF*/if (!(X291is_a_in((((T689*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1105. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1106. }
  1107. /*FI*/}
  1108. /*FI*//*IF*//*AF*//*AE*/
  1109. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1110. return R;
  1111. }
  1112. /*No:CST_ATT_INTEGER.fz_dot*/
  1113. /*No:CST_ATT_INTEGER.first_name*/
  1114. /*No:CST_ATT_INTEGER.clients*/
  1115. void r689collect_for(int a1){
  1116. /*IF*/if ((a1)==(1001)) {
  1117. /*IF*//*AF*//*AE*/
  1118. /*FI*/}
  1119. else {
  1120. /*IF*//*AF*//*AE*/
  1121. /*FI*/}
  1122. /*FI*/}
  1123. void r689error(T0* a1,T0* a2){
  1124. r683add_position(a1);
  1125. r683error(((T683*)(oBC364eh)),a2);
  1126. }
  1127. /*No:CST_ATT_INTEGER.base_class*/
  1128. void r689make_e_feature(T689* C,T0* a1,T0* a2){
  1129. C->_names=a1;
  1130. C->_result_type=a2;
  1131. }
  1132. /*No:BASE_CLASS.fz_is_invalid*/
  1133. /*No:BASE_CLASS.set_end_comment*/
  1134. /*No:BASE_CLASS.id*/
  1135. void r605add_feature_clause(T605* C,T0* a1){
  1136. /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)==((void*)(NULL))) {
  1137. {T913*n=malloc(sizeof(*n));
  1138. *n=M913;
  1139. /*[IRF3.3make*/((((T913*)(n)))->_list)=(se_ma764(1,a1));
  1140. /*]*/
  1141. C->_feature_clause_list=(T0*)n;
  1142. }
  1143. }
  1144. else {
  1145. /*[IRF3.5add_last*/r764add_last(((T764*)((((T913*)((T913*)((((T605*)C))->_feature_clause_list/*48*/))))->_list/*0*/)),a1);
  1146. /*]*/
  1147. }
  1148. /*FI*/}
  1149. void r605set_parent_list(T605* C,T0* a1,T0* a2,T0* a3){
  1150. {T673*n=malloc(sizeof(*n));
  1151. *n=M673;
  1152. r673make(n,(T0*)C,a1,a2,a3);
  1153. C->_parent_list=(T0*)n;
  1154. }
  1155. }
  1156. /*No:BASE_CLASS.is_deferred*/
  1157. int r605has_creation(T605* C,T0* a1){
  1158. int R=0;
  1159. T0* _cn=NULL;
  1160. T0* _bc=NULL;
  1161. T0* _cc=NULL;
  1162. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) {
  1163. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1164. r7append(((T7*)(oBC683explanation)),b1);
  1165. }/*]*/
  1166. /*[IRF3.6append*/{T0* b1=((T0*)ms7_605);
  1167. r7append(((T7*)(oBC683explanation)),b1);
  1168. }/*]*/
  1169. r683add_position(X776start_position(a1));
  1170. r683print_as_error(((T683*)(oBC364eh)));
  1171. }
  1172. else {
  1173. _cc=r391get_clause(((T391*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  1174. /*IF*/if ((_cc)==((void*)(NULL))) {
  1175. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  1176. r7append(((T7*)(oBC683explanation)),b1);
  1177. }/*]*/
  1178. /*[IRF3.6append*/{T0* b1=X776to_string(a1);
  1179. r7append(((T7*)(oBC683explanation)),b1);
  1180. }/*]*/
  1181. /*[IRF3.6append*/{T0* b1=((T0*)ms8_605);
  1182. r7append(((T7*)(oBC683explanation)),b1);
  1183. }/*]*/
  1184. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1185. r7append(((T7*)(oBC683explanation)),b1);
  1186. }/*]*/
  1187. r605error(X776start_position(a1),((T0*)ms67_470));
  1188. }
  1189. else {
  1190. R=1;
  1191. _bc=X776origin_base_class(a1);
  1192. /*IF*/if ((_bc)!=((void*)(NULL))) {
  1193. _cn=(((T605*)((T605*)_bc)))->_base_class_name/*24*/;
  1194. R=r636gives_permission_to(((T636*)((((T583*)((T583*)_cc)))->_clients/*4*/)),_cn);
  1195. }
  1196. /*FI*/}
  1197. /*FI*/}
  1198. /*FI*//*IF*/if (!(R)) {
  1199. r605error(X776start_position(a1),((T0*)ms9_605));
  1200. }
  1201. /*FI*/return R;
  1202. }
  1203. void r605add_creation_clause(T605* C,T0* a1){
  1204. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)==((void*)(NULL))) {
  1205. {T391*n=malloc(sizeof(*n));
  1206. *n=M391;
  1207. /*[IRF3.3make*/((((T391*)(n)))->_list)=(se_ma235(1,a1));
  1208. /*]*/
  1209. C->_creation_clause_list=(T0*)n;
  1210. }
  1211. }
  1212. else {
  1213. /*[IRF3.5add_last*/r235add_last(((T235*)((((T391*)((T391*)((((T605*)C))->_creation_clause_list/*44*/))))->_list/*0*/)),a1);
  1214. /*]*/
  1215. }
  1216. /*FI*/}
  1217. /*No:BASE_CLASS.us_copy*/
  1218. /*No:BASE_CLASS.feature_clause_list*/
  1219. void r605get_started(T605* C){
  1220. C->_id=r410item(((T410*)(r605id_provider())),(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/);
  1221. /*IF*/if (((((T605*)C))->_feature_clause_list/*48*/)!=((void*)(NULL))) {
  1222. r913get_started(((T913*)((((T605*)C))->_feature_clause_list/*48*/)),(((T605*)C))->_feature_dictionary/*60*/);
  1223. }
  1224. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1225. r673get_started(((T673*)((((T605*)C))->_parent_list/*40*/)));
  1226. }
  1227. /*FI*//*IF*/if (((((T605*)C))->_end_comment/*56*/)!=((void*)(NULL))) {
  1228. r393good_end(((T393*)((((T605*)C))->_end_comment/*56*/)),(((T605*)C))->_base_class_name/*24*/);
  1229. }
  1230. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1231. r863clear(((T863*)(oBC605visited)));
  1232. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  1233. r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/)));
  1234. }
  1235. /*FI*//*IF*/if (((r590all_check(((T590*)(oBC364run_control))))&&((((T605*)C))->_is_deferred/*16*/))&&(((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL)))) {
  1236. r683add_position((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/);
  1237. r605warning(r391start_position(((T391*)((((T605*)C))->_creation_clause_list/*44*/))),((T0*)ms6_605));
  1238. }
  1239. /*FI*/}
  1240. int r605is_subclass_of(T605* C,T0* a1){
  1241. int R=0;
  1242. /*IF*/if (r863fast_has(((T863*)((((T605*)C))->_isom/*64*/)),a1)) {
  1243. R=1;
  1244. }
  1245. else {
  1246. /*IF*/if (r605is_any(((T605*)a1))) {
  1247. R=1;
  1248. }
  1249. else {
  1250. r863clear(((T863*)(oBC605visited)));
  1251. R=r605is_subclass_of_aux(C,a1);
  1252. }
  1253. /*FI*//*IF*/if (R) {
  1254. r863add_last(((T863*)((((T605*)C))->_isom/*64*/)),a1);
  1255. }
  1256. /*FI*/}
  1257. /*FI*/return R;
  1258. }
  1259. int fBC364class_any=0;
  1260. T0*oBC364class_any=NULL;
  1261. T0* r605class_any(void){
  1262. if (fBC364class_any==0){
  1263. T0* R=NULL;
  1264. fBC364class_any=1;
  1265. R=r605class_with(((T0*)ms1_473));
  1266. oBC364class_any=R;}
  1267. return oBC364class_any;}
  1268. int r605has_feature(T605* C,T0* a1){
  1269. int R=0;
  1270. r446make(((T446*)(r605mem_fn())),a1,NULL);
  1271. R=r605has(C,r605mem_fn());
  1272. return R;
  1273. }
  1274. int fBC605mem_fn=0;
  1275. T0*oBC605mem_fn=NULL;
  1276. T0* r605mem_fn(void){
  1277. if (fBC605mem_fn==0){
  1278. T0* R=NULL;
  1279. fBC605mem_fn=1;
  1280. {T446*n=malloc(sizeof(*n));
  1281. *n=M446;
  1282. r446make(n,((T0*)ms27_605),NULL);
  1283. R=(T0*)n;
  1284. }
  1285. oBC605mem_fn=R;}
  1286. return oBC605mem_fn;}
  1287. int r605is_subclass_of_aux(T605* C,T0* a1){
  1288. int R=0;
  1289. /*IF*/if (r863fast_has(((T863*)(oBC605visited)),(T0*)C)) {
  1290. }
  1291. else {
  1292. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  1293. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1294. R=r673has_parent(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  1295. }
  1296.  else if (!(r863fast_has(((T863*)(oBC605visited)),r605class_any()))) {
  1297. R=r605is_subclass_of_aux(((T605*)(r605class_any())),a1);
  1298. }
  1299. /*FI*/}
  1300. /*FI*/return R;
  1301. }
  1302. /*No:BASE_CLASS.end_comment*/
  1303. void r605add_index_clause(T605* C,T0* a1){
  1304. /*IF*/if (((((T605*)C))->_index_list/*8*/)==((void*)(NULL))) {
  1305. {T688*n=malloc(sizeof(*n));
  1306. *n=M688;
  1307. /*[IRF3.3make*/((((T688*)(n)))->_list)=(se_ma848(1,a1));
  1308. /*]*/
  1309. C->_index_list=(T0*)n;
  1310. }
  1311. }
  1312. else {
  1313. r848add_last(((T848*)((((T688*)((T688*)((((T605*)C))->_index_list/*8*/))))->_list/*0*/)),a1);
  1314. }
  1315. /*FI*/}
  1316. /*No:BASE_CLASS.obsolete_type_string*/
  1317. T0* r605class_with(T0* a1){
  1318. T0* R=NULL;
  1319. R=r604get_class(a1);
  1320. return R;
  1321. }
  1322. /*No:BASE_CLASS.has_creation_clause*/
  1323. void r605make(T605* C){
  1324. {T863*n=malloc(sizeof(*n));
  1325. *n=M863;
  1326. r863with_capacity(n,6,1);
  1327. C->_isom=(T0*)n;
  1328. }
  1329. C->_path=r902item((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/);
  1330. {T451*n=malloc(sizeof(*n));
  1331. *n=M451;
  1332. r451make_unknown(n);
  1333. C->_base_class_name=(T0*)n;
  1334. }
  1335. {T237*n=malloc(sizeof(*n));
  1336. *n=M237;
  1337. r237with_capacity(n,32);
  1338. C->_feature_dictionary=(T0*)n;
  1339. }
  1340. }
  1341. /*No:BASE_CLASS.parent_list*/
  1342. T0* r605root_procedure(T605* C,T0* a1){
  1343. T0* R=NULL;
  1344. T0* _f=NULL;
  1345. T0* _rc=NULL;
  1346. /*IF*/if (/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/) {
  1347. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1348. r7append(((T7*)(oBC683explanation)),b1);
  1349. }/*]*/
  1350. /*[IRF3.6append*/{T0* b1=((T0*)ms10_605);
  1351. r7append(((T7*)(oBC683explanation)),b1);
  1352. }/*]*/
  1353. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1354. }
  1355. /*FI*//*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  1356. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1357. r7append(((T7*)(oBC683explanation)),b1);
  1358. }/*]*/
  1359. /*[IRF3.6append*/{T0* b1=((T0*)ms11_605);
  1360. r7append(((T7*)(oBC683explanation)),b1);
  1361. }/*]*/
  1362. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1363. }
  1364. /*FI*/r446make(((T446*)(r605mem_rpn())),a1,(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_start_position/*4*/);
  1365. /*IF*/if (!(r605has_creation(C,r605mem_rpn()))) {
  1366. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1367. r7append(((T7*)(oBC683explanation)),b1);
  1368. }/*]*/
  1369. /*[IRF3.6extend*/{char b1='\57';
  1370. r7extend(((T7*)(oBC683explanation)),b1);
  1371. }/*]*/
  1372. /*[IRF3.6append*/{T0* b1=a1;
  1373. r7append(((T7*)(oBC683explanation)),b1);
  1374. }/*]*/
  1375. /*[IRF3.6append*/{T0* b1=((T0*)ms12_605);
  1376. r7append(((T7*)(oBC683explanation)),b1);
  1377. }/*]*/
  1378. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1379. }
  1380. /*FI*//*IF*/if (!(r605has_feature(C,a1))) {
  1381. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1382. r7append(((T7*)(oBC683explanation)),b1);
  1383. }/*]*/
  1384. /*[IRF3.6append*/{T0* b1=((T0*)ms13_605);
  1385. r7append(((T7*)(oBC683explanation)),b1);
  1386. }/*]*/
  1387. /*[IRF3.6append*/{T0* b1=a1;
  1388. r7append(((T7*)(oBC683explanation)),b1);
  1389. }/*]*/
  1390. /*[IRF3.6append*/{T0* b1=((T0*)ms14_605);
  1391. r7append(((T7*)(oBC683explanation)),b1);
  1392. }/*]*/
  1393. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1394. }
  1395. /*FI*/_rc=r605run_class(C);
  1396. r355set_at_run_time(((T355*)_rc));
  1397. _f=r605look_up_for(C,_rc,r605mem_rpn());
  1398. /*IF*/if ((_f)==((void*)(NULL))) {
  1399. /*[IRF3.6append*/{T0* b1=((T0*)ms15_605);
  1400. r7append(((T7*)(oBC683explanation)),b1);
  1401. }/*]*/
  1402. /*[IRF3.6append*/{T0* b1=a1;
  1403. r7append(((T7*)(oBC683explanation)),b1);
  1404. }/*]*/
  1405. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms16_605);
  1406. r683fatal_error(((T683*)(oBC364eh)),b1);
  1407. }/*]*/
  1408. }
  1409. /*FI*/R=_f;
  1410. if(NULL!=(R))switch(((T0*)R)->id) {
  1411. case 297: 
  1412. break;
  1413. default:
  1414. R=NULL;
  1415. };/*IF*/if ((R)==((void*)(NULL))) {
  1416. r683add_position(X359start_position(_f));
  1417. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms17_605);
  1418. r683fatal_error(((T683*)(oBC364eh)),b1);
  1419. }/*]*/
  1420. }
  1421. /*FI*/return R;
  1422. }
  1423. /*No:BASE_CLASS.error_vtec1*/
  1424. /*No:BASE_CLASS.path*/
  1425. /*No:BASE_CLASS.next_parent_for*/
  1426. void r605check_expanded_with(T605* C,T0* a1){
  1427. T0* _rf=NULL;
  1428. /*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  1429. r683add_type(a1,((T0*)ms72_470));
  1430. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_605);
  1431. r683fatal_error(((T683*)(oBC364eh)),b1);
  1432. }/*]*/
  1433. }
  1434. /*FI*//*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) {
  1435. r391check_expanded_with(((T391*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  1436. }
  1437. /*FI*/_rf=r605expanded_initializer(C,a1);
  1438. }
  1439. /*No:BASE_CLASS.isom*/
  1440. /*No:BASE_CLASS.first_parent_for*/
  1441. /*No:BASE_CLASS.index_list*/
  1442. /*No:BASE_CLASS.set_heading_comment1*/
  1443. void r605inherit_cycle_check(T605* C){
  1444. int _i=0;
  1445. r863add_last(((T863*)(oBC605visited)),(T0*)C);
  1446. /*IF*/if ((r863first(((T863*)(oBC605visited))))==((void*)(C))) {
  1447. /*[IRF3.6append*/{T0* b1=((T0*)ms19_605);
  1448. r7append(((T7*)(oBC683explanation)),b1);
  1449. }/*]*/
  1450. _i=1;
  1451. while (!((_i)>((((T863*)((T863*)(oBC605visited))))->_upper/*8*/))) {
  1452. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)(r863item(((T863*)(oBC605visited)),_i)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1453. r7append(((T7*)(oBC683explanation)),b1);
  1454. }/*]*/
  1455. /*IF*/if ((_i)<((((T863*)((T863*)(oBC605visited))))->_upper/*8*/)) {
  1456. /*[IRF3.6append*/{T0* b1=((T0*)ms20_605);
  1457. r7append(((T7*)(oBC683explanation)),b1);
  1458. }/*]*/
  1459. }
  1460. /*FI*/_i=(_i)+(1);
  1461. }
  1462. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms21_605);
  1463. r683fatal_error(((T683*)(oBC364eh)),b1);
  1464. }/*]*/
  1465. }
  1466.  else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1467. r673inherit_cycle_check(((T673*)((((T605*)C))->_parent_list/*40*/)));
  1468. }
  1469. /*FI*/}
  1470. T0* r605new_name_of(T605* C,T0* a1,T0* a2){
  1471. T0* R=NULL;
  1472. /*IF*/if ((C)==((void*)(a1))) {
  1473. R=a2;
  1474. }
  1475. else {
  1476. R=r605up_to_original(((T605*)a1),(T0*)C,a2);
  1477. /*IF*/if ((R)==((void*)(NULL))) {
  1478. r683add_position(X776start_position(a2));
  1479. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  1480. r7append(((T7*)(oBC683explanation)),b1);
  1481. }/*]*/
  1482. /*[IRF3.6append*/{T0* b1=X776to_string(a2);
  1483. r7append(((T7*)(oBC683explanation)),b1);
  1484. }/*]*/
  1485. /*[IRF3.6append*/{T0* b1=((T0*)ms2_605);
  1486. r7append(((T7*)(oBC683explanation)),b1);
  1487. }/*]*/
  1488. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1489. r7append(((T7*)(oBC683explanation)),b1);
  1490. }/*]*/
  1491. /*[IRF3.6append*/{T0* b1=((T0*)ms3_605);
  1492. r7append(((T7*)(oBC683explanation)),b1);
  1493. }/*]*/
  1494. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1495. r7append(((T7*)(oBC683explanation)),b1);
  1496. }/*]*/
  1497. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_605);
  1498. r683fatal_error(((T683*)(oBC364eh)),b1);
  1499. }/*]*/
  1500. }
  1501. /*FI*/}
  1502. /*FI*/return R;
  1503. }
  1504. void r605set_is_expanded(T605* C){
  1505. /*IF*/if ((((T605*)C))->_is_deferred/*16*/) {
  1506. /*[IRF3.6error_vtec1*/{T605* C1=C;
  1507. r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605));
  1508. }/*]*/
  1509. }
  1510. /*FI*/C->_is_expanded=1;
  1511. }
  1512. int r605super_has(T605* C,T0* a1){
  1513. int R=0;
  1514. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1515. /*IF*/if (r605is_general(C)) {
  1516. R=0;
  1517. }
  1518. else {
  1519. R=r605has(((T605*)(r605class_any())),a1);
  1520. }
  1521. /*FI*/}
  1522. else {
  1523. R=r673has(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  1524. }
  1525. /*FI*/return R;
  1526. }
  1527. T0* r605up_to_original(T605* C,T0* a1,T0* a2){
  1528. T0* R=NULL;
  1529. /*IF*/if (r605proper_has(C,a2)) {
  1530. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1531. R=r605new_name_of_original(((T605*)a1),(T0*)C,a2);
  1532. }
  1533. else {
  1534. R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1535. /*IF*/if ((R)==((void*)(NULL))) {
  1536. R=r605new_name_of_original(((T605*)a1),(T0*)C,a2);
  1537. }
  1538. /*FI*/}
  1539. /*FI*/}
  1540.  else if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1541. R=r673up_to_original(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1542. }
  1543.  else if (r605is_general(C)) {
  1544. }
  1545. else {
  1546. R=r605up_to_original(((T605*)(r605class_any())),a1,a2);
  1547. }
  1548. /*FI*/return R;
  1549. }
  1550. void r605collect_invariant(T605* C,T0* a1){
  1551. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1552. r673collect_invariant(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  1553. }
  1554. /*FI*//*IF*/if (((((T605*)C))->_invariant_assertion/*52*/)!=((void*)(NULL))) {
  1555. /*[IRF3.6collect_invariant*/{T0* b1=(((T605*)C))->_invariant_assertion/*52*/;
  1556. r699add_into(((T699*)b1),oBC355ci_collector);
  1557. }/*]*/
  1558. }
  1559. /*FI*/}
  1560. int fBC605mem_rpn=0;
  1561. T0*oBC605mem_rpn=NULL;
  1562. T0* r605mem_rpn(void){
  1563. if (fBC605mem_rpn==0){
  1564. T0* R=NULL;
  1565. fBC605mem_rpn=1;
  1566. {T446*n=malloc(sizeof(*n));
  1567. *n=M446;
  1568. r446make(n,((T0*)ms28_605),NULL);
  1569. R=(T0*)n;
  1570. }
  1571. oBC605mem_rpn=R;}
  1572. return oBC605mem_rpn;}
  1573. /*No:BASE_CLASS.set_heading_comment2*/
  1574. int r605has(T605* C,T0* a1){
  1575. int R=0;
  1576. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1))) {
  1577. R=1;
  1578. }
  1579. else {
  1580. R=r605super_has(C,a1);
  1581. }
  1582. /*FI*/return R;
  1583. }
  1584. int fBC364id_provider=0;
  1585. T0*oBC364id_provider=NULL;
  1586. T0* r605id_provider(void){
  1587. if (fBC364id_provider==0){
  1588. T0* R=NULL;
  1589. fBC364id_provider=1;
  1590. {T410*n=malloc(sizeof(*n));
  1591. *n=M410;
  1592. r410make(n);
  1593. R=(T0*)n;
  1594. }
  1595. oBC364id_provider=R;}
  1596. return oBC364id_provider;}
  1597. T0* r605run_class(T605* C){
  1598. T0* R=NULL;
  1599. T0* _type=NULL;
  1600. T0* _name=NULL;
  1601. T0* _rcd=NULL;
  1602. _name=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1603. /*IF*/if ((!((((T605*)C))->_is_deferred/*16*/))&&(!(/*(IRF4.7is_generic*/((((T605*)C))->_formal_generic_list/*28*/)!=(NULL)/*)*/))) {
  1604. _rcd=oBC604run_class_dictionary;
  1605. /*IF*/if (r250has(((T250*)_rcd),_name)) {
  1606. R=r250at(((T250*)_rcd),_name);
  1607. }
  1608. else {
  1609. {T657*n=malloc(sizeof(*n));
  1610. *n=M657;
  1611. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=((((T605*)C))->_base_class_name/*24*/);
  1612. /*]*/
  1613. _type=(T0*)n;
  1614. }
  1615. R=r657run_class(((T657*)_type));
  1616. }
  1617. /*FI*/}
  1618. else {
  1619. r605error(NULL,((T0*)ms18_605));
  1620. }
  1621. /*FI*/return R;
  1622. }
  1623. /*No:BASE_CLASS.fz_09*/
  1624. int r605has_redefine(T605* C,T0* a1){
  1625. int R=0;
  1626. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1627. R=r673has_redefine(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  1628. }
  1629. /*FI*/return R;
  1630. }
  1631. T0* r605look_up_for(T605* C,T0* a1,T0* a2){
  1632. T0* R=NULL;
  1633. int _i=0;
  1634. T0* _super_fn=NULL;
  1635. T0* _fnl=NULL;
  1636. T0* _cst_att=NULL;
  1637. T0* _fn_key=NULL;
  1638. T0* _super=NULL;
  1639. _fn_key=X776to_key(a2);
  1640. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) {
  1641. R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key);
  1642. _super=r605super_look_up_for(C,a1,a2);
  1643. /*IF*/if ((_super)!=((void*)(NULL))) {
  1644. _cst_att=_super;
  1645. if(NULL!=(_cst_att))switch(((T0*)_cst_att)->id) {
  1646. case 380: case 588: case 398: case 689: case 554: case 580: case 835: case 118: 
  1647. break;
  1648. default:
  1649. _cst_att=NULL;
  1650. };/*IF*/if ((_cst_att)!=((void*)(NULL))) {
  1651. r683add_position(X359start_position(_super));
  1652. r683add_position(X359start_position(R));
  1653. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms22_605);
  1654. r683fatal_error(((T683*)(oBC364eh)),b1);
  1655. }/*]*/
  1656. }
  1657. /*FI*/_fnl=/*X359*/((T0*)(((T398*)((T398*)_super)))->_names/*8*/);
  1658. _i=/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/))))->_upper/*8*//*)*/;
  1659. while (!((_i)<(1))) {
  1660. _super_fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)_fnl)))->_list/*0*/)),_i)/*)*/;
  1661. /*IF*/if (X776is_frozen(_super_fn)) {
  1662. /*IF*/if ((X776to_key(_super_fn))==((void*)(_fn_key))) {
  1663. r683add_position(X776start_position(_super_fn));
  1664. r683add_position(X359start_position(R));
  1665. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms23_605);
  1666. r683fatal_error(((T683*)(oBC364eh)),b1);
  1667. }/*]*/
  1668. }
  1669. /*FI*/}
  1670. /*FI*/_i=(_i)-(1);
  1671. }
  1672. /*IF*/if (!(X359can_hide(R,_super,a1))) {
  1673. r683add_position(X359start_position(_super));
  1674. r683add_position(X359start_position(R));
  1675. /*[IRF3.6append*/{T0* b1=((T0*)ms24_605);
  1676. r7append(((T7*)(oBC683explanation)),b1);
  1677. }/*]*/
  1678. r683print_as_warning(((T683*)(oBC364eh)));
  1679. }
  1680. /*FI*//*IF*/if (X359is_deferred(_super)) {
  1681. }
  1682.  else if (r605has_redefine(C,a2)) {
  1683. }
  1684. else {
  1685. r683add_position(X359start_position(R));
  1686. r683add_position(X359start_position(_super));
  1687. /*[IRF3.6append*/{T0* b1=((T0*)ms25_605);
  1688. r7append(((T7*)(oBC683explanation)),b1);
  1689. }/*]*/
  1690. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1691. r7append(((T7*)(oBC683explanation)),b1);
  1692. }/*]*/
  1693. /*[IRF3.6append*/{T0* b1=((T0*)ms26_605);
  1694. r7append(((T7*)(oBC683explanation)),b1);
  1695. }/*]*/
  1696. r683print_as_error(((T683*)(oBC364eh)));
  1697. }
  1698. /*FI*/}
  1699. /*FI*/}
  1700. else {
  1701. R=r605super_look_up_for(C,a1,a2);
  1702. }
  1703. /*FI*/return R;
  1704. }
  1705. T0* r605get_copy(T605* C){
  1706. T0* R=NULL;
  1707. R=r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),((T0*)ms64_473));
  1708. return R;
  1709. }
  1710. void r605fatal_undefine(T605* C,T0* a1){
  1711. /*[IRF3.6append*/{T0* b1=((T0*)ms34_605);
  1712. r7append(((T7*)(oBC683explanation)),b1);
  1713. }/*]*/
  1714. /*[IRF3.6append*/{T0* b1=X776to_string(a1);
  1715. r7append(((T7*)(oBC683explanation)),b1);
  1716. }/*]*/
  1717. /*[IRF3.6append*/{T0* b1=((T0*)ms35_605);
  1718. r7append(((T7*)(oBC683explanation)),b1);
  1719. }/*]*/
  1720. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/;
  1721. r7append(((T7*)(oBC683explanation)),b1);
  1722. }/*]*/
  1723. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms36_605);
  1724. r683fatal_error(((T683*)(oBC364eh)),b1);
  1725. }/*]*/
  1726. }
  1727. T0* r605expanded_initializer(T605* C,T0* a1){
  1728. T0* R=NULL;
  1729. /*IF*/if (((((T605*)C))->_creation_clause_list/*44*/)!=((void*)(NULL))) {
  1730. R=r391expanded_initializer(((T391*)((((T605*)C))->_creation_clause_list/*44*/)),a1);
  1731. }
  1732. /*FI*/return R;
  1733. }
  1734. T0* r605super_look_up_for(T605* C,T0* a1,T0* a2){
  1735. T0* R=NULL;
  1736. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1737. /*IF*/if (r605is_general(C)) {
  1738. R=NULL;
  1739. }
  1740. else {
  1741. R=r605look_up_for(((T605*)(r605class_any())),a1,a2);
  1742. }
  1743. /*FI*/}
  1744. else {
  1745. R=r673look_up_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1746. }
  1747. /*FI*/return R;
  1748. }
  1749. /*No:BASE_CLASS.invariant_assertion*/
  1750. void r605set_invariant(T605* C,T0* a1,T0* a2,T0* a3){
  1751. /*IF*/if (((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))) {
  1752. {T699*n=malloc(sizeof(*n));
  1753. *n=M699;
  1754. r699make(n,a1,a2,a3);
  1755. C->_invariant_assertion=(T0*)n;
  1756. }
  1757. }
  1758. /*FI*/}
  1759. /*No:BASE_CLASS.fz_dot*/
  1760. /*No:BASE_CLASS.set_formal_generic_list*/
  1761. T0* r605clients_for(T605* C,T0* a1){
  1762. T0* R=NULL;
  1763. /*IF*/if (r605proper_has(C,a1)) {
  1764. R=X359clients(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1)));
  1765. }
  1766.  else if (r605is_general(C)) {
  1767. }
  1768.  else if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1769. R=r605clients_for(((T605*)(r605class_any())),a1);
  1770. }
  1771. else {
  1772. R=r673clients_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1);
  1773. }
  1774. /*FI*/return R;
  1775. }
  1776. /*No:BASE_CLASS.is_generic*/
  1777. T0*oBC605going_up_trace=NULL;
  1778. /*No:BASE_CLASS.heading_comment1*/
  1779. void r605set_is_deferred(T605* C){
  1780. /*IF*/if ((((T605*)C))->_is_expanded/*20*/) {
  1781. /*[IRF3.6error_vtec1*/{T605* C1=C;
  1782. r605error((((T451*)((T451*)((((T605*)C1))->_base_class_name/*24*/))))->_start_position/*4*/,((T0*)ms33_605));
  1783. }/*]*/
  1784. }
  1785. /*FI*/C->_is_deferred=1;
  1786. }
  1787. int r605proper_has(T605* C,T0* a1){
  1788. int R=0;
  1789. R=r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),X776to_key(a1));
  1790. return R;
  1791. }
  1792. T0* r605going_up(T605* C,T0* a1,T0* a2,T0* a3){
  1793. T0* R=NULL;
  1794. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1795. R=r605going_up(((T605*)(r605class_any())),a1,a2,a3);
  1796. }
  1797. else {
  1798. R=r673going_up(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2,a3);
  1799. }
  1800. /*FI*/return R;
  1801. }
  1802. /*No:BASE_CLASS.set_obsolete_type_string*/
  1803. /*No:BASE_CLASS.formal_generic_list*/
  1804. int r605is_a_vncg(T605* C,T0* a1,T0* a2){
  1805. int R=0;
  1806. /*IF*/if (((((T605*)C))->_parent_list/*40*/)!=((void*)(NULL))) {
  1807. R=r673is_a_vncg(((T673*)((((T605*)C))->_parent_list/*40*/)),X291run_type(a1),X291run_type(a2));
  1808. }
  1809. /*FI*/return R;
  1810. }
  1811. void r605collect_for(T605* C,int a1,T0* a2){
  1812. T0* _fn_key=NULL;
  1813. _fn_key=X776to_key(a2);
  1814. /*IF*/if (r237has(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key)) {
  1815. X359collect_for(r237at(((T237*)((((T605*)C))->_feature_dictionary/*60*/)),_fn_key),a1);
  1816. }
  1817. /*FI*//*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1818. /*IF*/if (r605is_general(C)) {
  1819. }
  1820. else {
  1821. r605collect_for(((T605*)(r605class_any())),a1,a2);
  1822. }
  1823. /*FI*/}
  1824. else {
  1825. r673collect_for(((T673*)((((T605*)C))->_parent_list/*40*/)),a1,a2);
  1826. }
  1827. /*FI*/}
  1828. void r605error(T0* a1,T0* a2){
  1829. r683add_position(a1);
  1830. r683error(((T683*)(oBC364eh)),a2);
  1831. }
  1832. /*No:BASE_CLASS.fatal_error*/
  1833. int r605is_any(T605* C){
  1834. int R=0;
  1835. R=(((T0*)ms1_473))==((void*)((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/));
  1836. return R;
  1837. }
  1838. /*No:BASE_CLASS.heading_comment2*/
  1839. int r605is_general(T605* C){
  1840. int R=0;
  1841. R=(((T0*)ms14_473))==((void*)((((T451*)((T451*)((((T605*)C))->_base_class_name/*24*/))))->_to_string/*0*/));
  1842. return R;
  1843. }
  1844. /*No:BASE_CLASS.feature_dictionary*/
  1845. T0* r605new_name_of_original(T605* C,T0* a1,T0* a2){
  1846. T0* R=NULL;
  1847. /*IF*/if ((C)==((void*)(a1))) {
  1848. R=a2;
  1849. }
  1850.  else if (r605is_general(C)) {
  1851. R=a2;
  1852. }
  1853. else {
  1854. /*IF*/if (((((T605*)C))->_parent_list/*40*/)==((void*)(NULL))) {
  1855. R=r605new_name_of(((T605*)(r605class_any())),a1,a2);
  1856. }
  1857. else {
  1858. /*[IRF3.3clear*/((((T854*)(((T854*)(oBC605going_up_trace)))))->_upper)=(-(1));
  1859. /*]*/
  1860. R=r673going_up(((T673*)((((T605*)C))->_parent_list/*40*/)),oBC605going_up_trace,a1,a2);
  1861. }
  1862. /*FI*/}
  1863. /*FI*/return R;
  1864. }
  1865. T0*oBC605visited=NULL;
  1866. /*No:BASE_CLASS.base_class_name*/
  1867. /*No:BASE_CLASS.is_expanded*/
  1868. /*No:BASE_CLASS.creation_clause_list*/
  1869. /*No:BASE_CLASS.us_any*/
  1870. /*No:BASE_CLASS.us_general*/
  1871. void r605warning(T0* a1,T0* a2){
  1872. r683add_position(a1);
  1873. r683warning(((T683*)(oBC364eh)),a2);
  1874. }
  1875. int r958id(T958* C){
  1876. int R=0;
  1877. R=(((T355*)((T355*)(r958run_class(C)))))->_id/*4*/;
  1878. return R;
  1879. }
  1880.  
  1881.